function videoLength(){
    //获取当前video的总时间
    var h=Math.floor(num/3600);
    var m=Math.floor(num%3600/60);
    var s=Math.floor(num%60);
    h=h>=10?h:'0'+h;
    m=m>=10?m:'0'+m;
    s=s>=10?s:'0'+s;
    totaltime.innerHTML=h+':'+m+':'+s;//allTime.toString();
}

function videoLengthChange(){
    //视频播放位置发生变化时开始执行
    if(range){
        btntime.value =100*num/allPlayTime;///this.totaltime;
        var time=num;
        var h=Math.floor(time/3600);
        var m=Math.floor(time%3600/60);
        var s=Math.floor(time%60);
        h=h>=10?h:'0'+h;
        m=m>=10?m:'0'+m;
        s=s>=10?s:'0'+s;
        current_time.innerHTML=h+':'+m+':'+s;
    }
}

function clickFun(num,maxNum,waitTime){
    //防抖
    // num = 0  连续点击次数  maxNum = 3 最大连续点击次数 waitTime = 200 该时间间隔内点击才算连续点击（单位：ms） 0 3 200
    let timer = null;
    let lastTime = new Date().getTime(); // 上次的点击时间
    document.addEventListener("click", () => {
      let nowTime = new Date().getTime();
      if (nowTime - lastTime < waitTime) {
        num++;
      } else {
        num = 0;
      }
      lastTime = nowTime;
      console.log(num,maxNum);
      if (num >= maxNum) {
        clearTimeout(timer);
        timer = setTimeout(() => {
            if (confirm('您确定要执行要关机吗？')) {
                console.log('用户选择了确认操作')
                // sendSocket_str('str','shutdown'); 
                return true
              } else {
                console.log('用户选择了取消操作')
                return false
              }
        }, 100);
      }
    });
}

function gettime(){
    //页面倒计时
    clearTimeout(steTime) //清空计时器
    settime(countdown_time) //重新倒计时
}

function settime(time, steTime = null) { 
    // 倒计时
    // time = 60s 倒计时时间 countdown_time 总时长 ; steTime  清空计时器变量
    if (time == 0) { 
        console.log(time);
        // $(".loading_div").show();
        time = countdown_time; 
        return time
    }else { 
        // $(".loading_div").hide();
        time--; 
        steTime = setTimeout(function() {
            settime(time) 
        },1000) 
    } 
}

function sendSocket_str(type,num,elseStr) {
  //发送字符串 发送命令
  let str = ''
  if(type == "str"){
    str = num
  }
  else if(type == "num"){
    
    str = 'vol:' +  num
  }
  console.log(str,'返回str');
  if(connectStatus == true)
  {
    wsValue.send(str)
  }	
}

/**
		 * reconnect 重连
		 * */
function reconnect() {
  connectStatus = false;
  isMessage = false;
  if (lockReconnect) return;
  lockReconnect = true;
  setTimeout(() => {
    if(connectStatus == false){
      console.log(localUrl,"localUrl");
      wsValue = socketConnect(localUrl);
      lockReconnect = false;
    }
  }, 3000);
}
/*
vol_change 音量加减

*/
function vol_change(type = "",vol){
  vol = parseFloat(vol);
  vol = Math.round(vol * 10) / 10;
  if(type == 'vol_up'){
      vol += 0.1
      volume = vol;
      if(vol > 0.9){
          volume = 1
      }
  }
  else if(type == 'vol_down'){
      vol -= 0.1;
      volume = vol;
      if(vol < 0.1){
          volume = 0
      }
  }
  volume = parseFloat(volume);
  volume = Math.round(volume * 10) / 10;
  // sendSocket_str('num',volume); 
  // console.log(volume,"volume");
  return volume;
}

/*
  DelayQueue  添加到队列中的每个消息都会有一个setTimeout调用，在指定的延时之后触发消息的发送。clearAll方法用于清除所有待处理的消息。
  // 使用示例
  const delayQueue = new DelayQueue(); //初始化 delayQueue
  delayQueue.add('消息A', 3000); // 3秒后发送
  delayQueue.add('消息B', 5000); // 5秒后发送
  delayQueue.clearAll(); // 清空所有待发送的消息

*/ 

// 上传文件队列
class DelayQueue {
  constructor() {
    this.queue = [];
  }
 
  add(message, delay) {
    const item = {
      message,
      delay,
      timeoutId: setTimeout(() => this.sendMessage(message), delay)
    };
    this.queue.push(item);
  }
 
  sendMessage(message) {
    // 发送消息的逻辑
    console.log(message);
  }
 
  clearAll() {
    this.queue.forEach(item => clearTimeout(item.timeoutId));
    this.queue = [];
  }
}